package cn.chengpengper.seckill.mq;

import cn.chengpengper.seckill.common.model.message.TopicMessage;
import org.apache.rocketmq.client.producer.TransactionSendResult;

/**
 * @author chengpeng.hu
 */
public interface MessageSenderService {

    /**
     * 发送消息
     *
     * @param message 发送的消息
     * @return 返回发送结果
     */
    boolean send(TopicMessage message);

    /**
     * 发送事务消息，主要是RocketMQ
     *
     * @param message 事务消息
     * @param arg     其他参数
     * @return 返回事务发送结果
     */
    default TransactionSendResult sendMessageInTransaction(TopicMessage message, Object arg) {
        return null;
    }

}
